0 JBC
↳1 JBC2FIG (⇐)
↳2 FIGraph
↳3 FIGtoITRSProof (⇐)
↳4 ITRS
↳5 GroundTermsRemoverProof (⇔)
↳6 ITRS
↳7 ITRStoIDPProof (⇔)
↳8 IDP
↳9 UsableRulesProof (⇔)
↳10 IDP
↳11 IDPNonInfProof (⇐)
↳12 AND
↳13 IDP
↳14 IDependencyGraphProof (⇔)
↳15 IDP
↳16 IDPNonInfProof (⇐)
↳17 AND
↳18 IDP
↳19 IDependencyGraphProof (⇔)
↳20 TRUE
↳21 IDP
↳22 IDependencyGraphProof (⇔)
↳23 TRUE
↳24 IDP
↳25 IDependencyGraphProof (⇔)
↳26 TRUE
No human-readable program information known.
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Load299(x1, x2) → Load299(x2)
Cond_Load4391(x1, x2, x3, x4) → Cond_Load4391(x1, x3, x4)
Load439(x1, x2, x3) → Load439(x2, x3)
Cond_Load439(x1, x2, x3, x4) → Cond_Load439(x1, x3, x4)
Cond_Load299(x1, x2, x3) → Cond_Load299(x1, x3)
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer, Boolean
(0) -> (1), if ((i26[0] →* i26[1])∧(i26[0] >= 0 →* TRUE))
(1) -> (2), if ((1 →* i37[2])∧(i26[1] →* i36[2]))
(1) -> (4), if ((1 →* i37[4])∧(i26[1] →* i36[4]))
(2) -> (3), if ((i37[2] →* i37[3])∧(i36[2] →* i36[3])∧(i37[2] > 0 && i36[2] > i37[2] →* TRUE))
(3) -> (2), if ((2 * i37[3] →* i37[2])∧(i36[3] →* i36[2]))
(3) -> (4), if ((2 * i37[3] →* i37[4])∧(i36[3] →* i36[4]))
(4) -> (5), if ((i36[4] >= 0 && i37[4] > 0 && i36[4] <= i37[4] →* TRUE)∧(i36[4] →* i36[5])∧(i37[4] →* i37[5]))
(5) -> (0), if ((i36[5] + -1 →* i26[0]))
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer, Boolean
(0) -> (1), if ((i26[0] →* i26[1])∧(i26[0] >= 0 →* TRUE))
(1) -> (2), if ((1 →* i37[2])∧(i26[1] →* i36[2]))
(1) -> (4), if ((1 →* i37[4])∧(i26[1] →* i36[4]))
(2) -> (3), if ((i37[2] →* i37[3])∧(i36[2] →* i36[3])∧(i37[2] > 0 && i36[2] > i37[2] →* TRUE))
(3) -> (2), if ((2 * i37[3] →* i37[2])∧(i36[3] →* i36[2]))
(3) -> (4), if ((2 * i37[3] →* i37[4])∧(i36[3] →* i36[4]))
(4) -> (5), if ((i36[4] >= 0 && i37[4] > 0 && i36[4] <= i37[4] →* TRUE)∧(i36[4] →* i36[5])∧(i37[4] →* i37[5]))
(5) -> (0), if ((i36[5] + -1 →* i26[0]))
(1) (i26[0]=i26[1]∧>=(i26[0], 0)=TRUE ⇒ LOAD299(i26[0])≥NonInfC∧LOAD299(i26[0])≥COND_LOAD299(>=(i26[0], 0), i26[0])∧(UIncreasing(COND_LOAD299(>=(i26[0], 0), i26[0])), ≥))
(2) (>=(i26[0], 0)=TRUE ⇒ LOAD299(i26[0])≥NonInfC∧LOAD299(i26[0])≥COND_LOAD299(>=(i26[0], 0), i26[0])∧(UIncreasing(COND_LOAD299(>=(i26[0], 0), i26[0])), ≥))
(3) (i26[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD299(>=(i26[0], 0), i26[0])), ≥)∧[(-1)Bound*bni_23] + [bni_23]i26[0] ≥ 0∧[(-1)bso_24] ≥ 0)
(4) (i26[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD299(>=(i26[0], 0), i26[0])), ≥)∧[(-1)Bound*bni_23] + [bni_23]i26[0] ≥ 0∧[(-1)bso_24] ≥ 0)
(5) (i26[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD299(>=(i26[0], 0), i26[0])), ≥)∧[(-1)Bound*bni_23] + [bni_23]i26[0] ≥ 0∧[(-1)bso_24] ≥ 0)
(6) (i26[0]=i26[1]∧>=(i26[0], 0)=TRUE∧1=i37[2]∧i26[1]=i36[2] ⇒ COND_LOAD299(TRUE, i26[1])≥NonInfC∧COND_LOAD299(TRUE, i26[1])≥LOAD439(i26[1], 1)∧(UIncreasing(LOAD439(i26[1], 1)), ≥))
(7) (>=(i26[0], 0)=TRUE ⇒ COND_LOAD299(TRUE, i26[0])≥NonInfC∧COND_LOAD299(TRUE, i26[0])≥LOAD439(i26[0], 1)∧(UIncreasing(LOAD439(i26[1], 1)), ≥))
(8) (i26[0] ≥ 0 ⇒ (UIncreasing(LOAD439(i26[1], 1)), ≥)∧[(-1)Bound*bni_25] + [bni_25]i26[0] ≥ 0∧[1 + (-1)bso_26] ≥ 0)
(9) (i26[0] ≥ 0 ⇒ (UIncreasing(LOAD439(i26[1], 1)), ≥)∧[(-1)Bound*bni_25] + [bni_25]i26[0] ≥ 0∧[1 + (-1)bso_26] ≥ 0)
(10) (i26[0] ≥ 0 ⇒ (UIncreasing(LOAD439(i26[1], 1)), ≥)∧[(-1)Bound*bni_25] + [bni_25]i26[0] ≥ 0∧[1 + (-1)bso_26] ≥ 0)
(11) (i26[0]=i26[1]∧>=(i26[0], 0)=TRUE∧1=i37[4]∧i26[1]=i36[4] ⇒ COND_LOAD299(TRUE, i26[1])≥NonInfC∧COND_LOAD299(TRUE, i26[1])≥LOAD439(i26[1], 1)∧(UIncreasing(LOAD439(i26[1], 1)), ≥))
(12) (>=(i26[0], 0)=TRUE ⇒ COND_LOAD299(TRUE, i26[0])≥NonInfC∧COND_LOAD299(TRUE, i26[0])≥LOAD439(i26[0], 1)∧(UIncreasing(LOAD439(i26[1], 1)), ≥))
(13) (i26[0] ≥ 0 ⇒ (UIncreasing(LOAD439(i26[1], 1)), ≥)∧[(-1)Bound*bni_25] + [bni_25]i26[0] ≥ 0∧[1 + (-1)bso_26] ≥ 0)
(14) (i26[0] ≥ 0 ⇒ (UIncreasing(LOAD439(i26[1], 1)), ≥)∧[(-1)Bound*bni_25] + [bni_25]i26[0] ≥ 0∧[1 + (-1)bso_26] ≥ 0)
(15) (i26[0] ≥ 0 ⇒ (UIncreasing(LOAD439(i26[1], 1)), ≥)∧[(-1)Bound*bni_25] + [bni_25]i26[0] ≥ 0∧[1 + (-1)bso_26] ≥ 0)
(16) (i37[2]=i37[3]∧i36[2]=i36[3]∧&&(>(i37[2], 0), >(i36[2], i37[2]))=TRUE ⇒ LOAD439(i36[2], i37[2])≥NonInfC∧LOAD439(i36[2], i37[2])≥COND_LOAD439(&&(>(i37[2], 0), >(i36[2], i37[2])), i36[2], i37[2])∧(UIncreasing(COND_LOAD439(&&(>(i37[2], 0), >(i36[2], i37[2])), i36[2], i37[2])), ≥))
(17) (>(i37[2], 0)=TRUE∧>(i36[2], i37[2])=TRUE ⇒ LOAD439(i36[2], i37[2])≥NonInfC∧LOAD439(i36[2], i37[2])≥COND_LOAD439(&&(>(i37[2], 0), >(i36[2], i37[2])), i36[2], i37[2])∧(UIncreasing(COND_LOAD439(&&(>(i37[2], 0), >(i36[2], i37[2])), i36[2], i37[2])), ≥))
(18) (i37[2] + [-1] ≥ 0∧i36[2] + [-1] + [-1]i37[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD439(&&(>(i37[2], 0), >(i36[2], i37[2])), i36[2], i37[2])), ≥)∧[(-1)bni_27 + (-1)Bound*bni_27] + [bni_27]i36[2] ≥ 0∧[(-1)bso_28] ≥ 0)
(19) (i37[2] + [-1] ≥ 0∧i36[2] + [-1] + [-1]i37[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD439(&&(>(i37[2], 0), >(i36[2], i37[2])), i36[2], i37[2])), ≥)∧[(-1)bni_27 + (-1)Bound*bni_27] + [bni_27]i36[2] ≥ 0∧[(-1)bso_28] ≥ 0)
(20) (i37[2] + [-1] ≥ 0∧i36[2] + [-1] + [-1]i37[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD439(&&(>(i37[2], 0), >(i36[2], i37[2])), i36[2], i37[2])), ≥)∧[(-1)bni_27 + (-1)Bound*bni_27] + [bni_27]i36[2] ≥ 0∧[(-1)bso_28] ≥ 0)
(21) (i37[2] ≥ 0∧i36[2] + [-2] + [-1]i37[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD439(&&(>(i37[2], 0), >(i36[2], i37[2])), i36[2], i37[2])), ≥)∧[(-1)bni_27 + (-1)Bound*bni_27] + [bni_27]i36[2] ≥ 0∧[(-1)bso_28] ≥ 0)
(22) (i37[2] ≥ 0∧i36[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD439(&&(>(i37[2], 0), >(i36[2], i37[2])), i36[2], i37[2])), ≥)∧[bni_27 + (-1)Bound*bni_27] + [bni_27]i37[2] + [bni_27]i36[2] ≥ 0∧[(-1)bso_28] ≥ 0)
(23) (i37[2]=i37[3]∧i36[2]=i36[3]∧&&(>(i37[2], 0), >(i36[2], i37[2]))=TRUE∧*(2, i37[3])=i37[2]1∧i36[3]=i36[2]1 ⇒ COND_LOAD439(TRUE, i36[3], i37[3])≥NonInfC∧COND_LOAD439(TRUE, i36[3], i37[3])≥LOAD439(i36[3], *(2, i37[3]))∧(UIncreasing(LOAD439(i36[3], *(2, i37[3]))), ≥))
(24) (>(i37[2], 0)=TRUE∧>(i36[2], i37[2])=TRUE ⇒ COND_LOAD439(TRUE, i36[2], i37[2])≥NonInfC∧COND_LOAD439(TRUE, i36[2], i37[2])≥LOAD439(i36[2], *(2, i37[2]))∧(UIncreasing(LOAD439(i36[3], *(2, i37[3]))), ≥))
(25) (i37[2] + [-1] ≥ 0∧i36[2] + [-1] + [-1]i37[2] ≥ 0 ⇒ (UIncreasing(LOAD439(i36[3], *(2, i37[3]))), ≥)∧[(-1)bni_29 + (-1)Bound*bni_29] + [bni_29]i36[2] ≥ 0∧[(-1)bso_30] ≥ 0)
(26) (i37[2] + [-1] ≥ 0∧i36[2] + [-1] + [-1]i37[2] ≥ 0 ⇒ (UIncreasing(LOAD439(i36[3], *(2, i37[3]))), ≥)∧[(-1)bni_29 + (-1)Bound*bni_29] + [bni_29]i36[2] ≥ 0∧[(-1)bso_30] ≥ 0)
(27) (i37[2] + [-1] ≥ 0∧i36[2] + [-1] + [-1]i37[2] ≥ 0 ⇒ (UIncreasing(LOAD439(i36[3], *(2, i37[3]))), ≥)∧[(-1)bni_29 + (-1)Bound*bni_29] + [bni_29]i36[2] ≥ 0∧[(-1)bso_30] ≥ 0)
(28) (i37[2] ≥ 0∧i36[2] + [-2] + [-1]i37[2] ≥ 0 ⇒ (UIncreasing(LOAD439(i36[3], *(2, i37[3]))), ≥)∧[(-1)bni_29 + (-1)Bound*bni_29] + [bni_29]i36[2] ≥ 0∧[(-1)bso_30] ≥ 0)
(29) (i37[2] ≥ 0∧i36[2] ≥ 0 ⇒ (UIncreasing(LOAD439(i36[3], *(2, i37[3]))), ≥)∧[bni_29 + (-1)Bound*bni_29] + [bni_29]i37[2] + [bni_29]i36[2] ≥ 0∧[(-1)bso_30] ≥ 0)
(30) (i37[2]=i37[3]∧i36[2]=i36[3]∧&&(>(i37[2], 0), >(i36[2], i37[2]))=TRUE∧*(2, i37[3])=i37[4]∧i36[3]=i36[4] ⇒ COND_LOAD439(TRUE, i36[3], i37[3])≥NonInfC∧COND_LOAD439(TRUE, i36[3], i37[3])≥LOAD439(i36[3], *(2, i37[3]))∧(UIncreasing(LOAD439(i36[3], *(2, i37[3]))), ≥))
(31) (>(i37[2], 0)=TRUE∧>(i36[2], i37[2])=TRUE ⇒ COND_LOAD439(TRUE, i36[2], i37[2])≥NonInfC∧COND_LOAD439(TRUE, i36[2], i37[2])≥LOAD439(i36[2], *(2, i37[2]))∧(UIncreasing(LOAD439(i36[3], *(2, i37[3]))), ≥))
(32) (i37[2] + [-1] ≥ 0∧i36[2] + [-1] + [-1]i37[2] ≥ 0 ⇒ (UIncreasing(LOAD439(i36[3], *(2, i37[3]))), ≥)∧[(-1)bni_29 + (-1)Bound*bni_29] + [bni_29]i36[2] ≥ 0∧[(-1)bso_30] ≥ 0)
(33) (i37[2] + [-1] ≥ 0∧i36[2] + [-1] + [-1]i37[2] ≥ 0 ⇒ (UIncreasing(LOAD439(i36[3], *(2, i37[3]))), ≥)∧[(-1)bni_29 + (-1)Bound*bni_29] + [bni_29]i36[2] ≥ 0∧[(-1)bso_30] ≥ 0)
(34) (i37[2] + [-1] ≥ 0∧i36[2] + [-1] + [-1]i37[2] ≥ 0 ⇒ (UIncreasing(LOAD439(i36[3], *(2, i37[3]))), ≥)∧[(-1)bni_29 + (-1)Bound*bni_29] + [bni_29]i36[2] ≥ 0∧[(-1)bso_30] ≥ 0)
(35) (i37[2] ≥ 0∧i36[2] + [-2] + [-1]i37[2] ≥ 0 ⇒ (UIncreasing(LOAD439(i36[3], *(2, i37[3]))), ≥)∧[(-1)bni_29 + (-1)Bound*bni_29] + [bni_29]i36[2] ≥ 0∧[(-1)bso_30] ≥ 0)
(36) (i37[2] ≥ 0∧i36[2] ≥ 0 ⇒ (UIncreasing(LOAD439(i36[3], *(2, i37[3]))), ≥)∧[bni_29 + (-1)Bound*bni_29] + [bni_29]i37[2] + [bni_29]i36[2] ≥ 0∧[(-1)bso_30] ≥ 0)
(37) (&&(&&(>=(i36[4], 0), >(i37[4], 0)), <=(i36[4], i37[4]))=TRUE∧i36[4]=i36[5]∧i37[4]=i37[5] ⇒ LOAD439(i36[4], i37[4])≥NonInfC∧LOAD439(i36[4], i37[4])≥COND_LOAD4391(&&(&&(>=(i36[4], 0), >(i37[4], 0)), <=(i36[4], i37[4])), i36[4], i37[4])∧(UIncreasing(COND_LOAD4391(&&(&&(>=(i36[4], 0), >(i37[4], 0)), <=(i36[4], i37[4])), i36[4], i37[4])), ≥))
(38) (<=(i36[4], i37[4])=TRUE∧>=(i36[4], 0)=TRUE∧>(i37[4], 0)=TRUE ⇒ LOAD439(i36[4], i37[4])≥NonInfC∧LOAD439(i36[4], i37[4])≥COND_LOAD4391(&&(&&(>=(i36[4], 0), >(i37[4], 0)), <=(i36[4], i37[4])), i36[4], i37[4])∧(UIncreasing(COND_LOAD4391(&&(&&(>=(i36[4], 0), >(i37[4], 0)), <=(i36[4], i37[4])), i36[4], i37[4])), ≥))
(39) (i37[4] + [-1]i36[4] ≥ 0∧i36[4] ≥ 0∧i37[4] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD4391(&&(&&(>=(i36[4], 0), >(i37[4], 0)), <=(i36[4], i37[4])), i36[4], i37[4])), ≥)∧[(-1)bni_31 + (-1)Bound*bni_31] + [bni_31]i36[4] ≥ 0∧[(-1)bso_32] ≥ 0)
(40) (i37[4] + [-1]i36[4] ≥ 0∧i36[4] ≥ 0∧i37[4] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD4391(&&(&&(>=(i36[4], 0), >(i37[4], 0)), <=(i36[4], i37[4])), i36[4], i37[4])), ≥)∧[(-1)bni_31 + (-1)Bound*bni_31] + [bni_31]i36[4] ≥ 0∧[(-1)bso_32] ≥ 0)
(41) (i37[4] + [-1]i36[4] ≥ 0∧i36[4] ≥ 0∧i37[4] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD4391(&&(&&(>=(i36[4], 0), >(i37[4], 0)), <=(i36[4], i37[4])), i36[4], i37[4])), ≥)∧[(-1)bni_31 + (-1)Bound*bni_31] + [bni_31]i36[4] ≥ 0∧[(-1)bso_32] ≥ 0)
(42) (i37[4] ≥ 0∧i36[4] ≥ 0∧i36[4] + [-1] + i37[4] ≥ 0 ⇒ (UIncreasing(COND_LOAD4391(&&(&&(>=(i36[4], 0), >(i37[4], 0)), <=(i36[4], i37[4])), i36[4], i37[4])), ≥)∧[(-1)bni_31 + (-1)Bound*bni_31] + [bni_31]i36[4] ≥ 0∧[(-1)bso_32] ≥ 0)
(43) (&&(&&(>=(i36[4], 0), >(i37[4], 0)), <=(i36[4], i37[4]))=TRUE∧i36[4]=i36[5]∧i37[4]=i37[5]∧+(i36[5], -1)=i26[0] ⇒ COND_LOAD4391(TRUE, i36[5], i37[5])≥NonInfC∧COND_LOAD4391(TRUE, i36[5], i37[5])≥LOAD299(+(i36[5], -1))∧(UIncreasing(LOAD299(+(i36[5], -1))), ≥))
(44) (<=(i36[4], i37[4])=TRUE∧>=(i36[4], 0)=TRUE∧>(i37[4], 0)=TRUE ⇒ COND_LOAD4391(TRUE, i36[4], i37[4])≥NonInfC∧COND_LOAD4391(TRUE, i36[4], i37[4])≥LOAD299(+(i36[4], -1))∧(UIncreasing(LOAD299(+(i36[5], -1))), ≥))
(45) (i37[4] + [-1]i36[4] ≥ 0∧i36[4] ≥ 0∧i37[4] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD299(+(i36[5], -1))), ≥)∧[(-1)bni_33 + (-1)Bound*bni_33] + [bni_33]i36[4] ≥ 0∧[(-1)bso_34] ≥ 0)
(46) (i37[4] + [-1]i36[4] ≥ 0∧i36[4] ≥ 0∧i37[4] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD299(+(i36[5], -1))), ≥)∧[(-1)bni_33 + (-1)Bound*bni_33] + [bni_33]i36[4] ≥ 0∧[(-1)bso_34] ≥ 0)
(47) (i37[4] + [-1]i36[4] ≥ 0∧i36[4] ≥ 0∧i37[4] + [-1] ≥ 0 ⇒ (UIncreasing(LOAD299(+(i36[5], -1))), ≥)∧[(-1)bni_33 + (-1)Bound*bni_33] + [bni_33]i36[4] ≥ 0∧[(-1)bso_34] ≥ 0)
(48) (i37[4] ≥ 0∧i36[4] ≥ 0∧i36[4] + [-1] + i37[4] ≥ 0 ⇒ (UIncreasing(LOAD299(+(i36[5], -1))), ≥)∧[(-1)bni_33 + (-1)Bound*bni_33] + [bni_33]i36[4] ≥ 0∧[(-1)bso_34] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = [1]
POL(LOAD299(x1)) = x1
POL(COND_LOAD299(x1, x2)) = x2
POL(>=(x1, x2)) = [-1]
POL(0) = 0
POL(LOAD439(x1, x2)) = [-1] + x1
POL(1) = [1]
POL(COND_LOAD439(x1, x2, x3)) = [-1] + x2
POL(&&(x1, x2)) = [-1]
POL(>(x1, x2)) = [-1]
POL(*(x1, x2)) = x1·x2
POL(2) = [2]
POL(COND_LOAD4391(x1, x2, x3)) = [-1] + x2
POL(<=(x1, x2)) = [-1]
POL(+(x1, x2)) = x1 + x2
POL(-1) = [-1]
COND_LOAD299(TRUE, i26[1]) → LOAD439(i26[1], 1)
LOAD299(i26[0]) → COND_LOAD299(>=(i26[0], 0), i26[0])
COND_LOAD299(TRUE, i26[1]) → LOAD439(i26[1], 1)
LOAD439(i36[2], i37[2]) → COND_LOAD439(&&(>(i37[2], 0), >(i36[2], i37[2])), i36[2], i37[2])
COND_LOAD439(TRUE, i36[3], i37[3]) → LOAD439(i36[3], *(2, i37[3]))
LOAD439(i36[4], i37[4]) → COND_LOAD4391(&&(&&(>=(i36[4], 0), >(i37[4], 0)), <=(i36[4], i37[4])), i36[4], i37[4])
COND_LOAD4391(TRUE, i36[5], i37[5]) → LOAD299(+(i36[5], -1))
LOAD299(i26[0]) → COND_LOAD299(>=(i26[0], 0), i26[0])
LOAD439(i36[2], i37[2]) → COND_LOAD439(&&(>(i37[2], 0), >(i36[2], i37[2])), i36[2], i37[2])
COND_LOAD439(TRUE, i36[3], i37[3]) → LOAD439(i36[3], *(2, i37[3]))
LOAD439(i36[4], i37[4]) → COND_LOAD4391(&&(&&(>=(i36[4], 0), >(i37[4], 0)), <=(i36[4], i37[4])), i36[4], i37[4])
COND_LOAD4391(TRUE, i36[5], i37[5]) → LOAD299(+(i36[5], -1))
FALSE1 → &&(TRUE, FALSE)1
FALSE1 → &&(FALSE, TRUE)1
FALSE1 → &&(FALSE, FALSE)1
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer, Boolean
(5) -> (0), if ((i36[5] + -1 →* i26[0]))
(3) -> (2), if ((2 * i37[3] →* i37[2])∧(i36[3] →* i36[2]))
(2) -> (3), if ((i37[2] →* i37[3])∧(i36[2] →* i36[3])∧(i37[2] > 0 && i36[2] > i37[2] →* TRUE))
(3) -> (4), if ((2 * i37[3] →* i37[4])∧(i36[3] →* i36[4]))
(4) -> (5), if ((i36[4] >= 0 && i37[4] > 0 && i36[4] <= i37[4] →* TRUE)∧(i36[4] →* i36[5])∧(i37[4] →* i37[5]))
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer, Boolean
(3) -> (2), if ((2 * i37[3] →* i37[2])∧(i36[3] →* i36[2]))
(2) -> (3), if ((i37[2] →* i37[3])∧(i36[2] →* i36[3])∧(i37[2] > 0 && i36[2] > i37[2] →* TRUE))
(1) (i37[2]=i37[3]∧i36[2]=i36[3]∧&&(>(i37[2], 0), >(i36[2], i37[2]))=TRUE∧*(2, i37[3])=i37[2]1∧i36[3]=i36[2]1 ⇒ COND_LOAD439(TRUE, i36[3], i37[3])≥NonInfC∧COND_LOAD439(TRUE, i36[3], i37[3])≥LOAD439(i36[3], *(2, i37[3]))∧(UIncreasing(LOAD439(i36[3], *(2, i37[3]))), ≥))
(2) (>(i37[2], 0)=TRUE∧>(i36[2], i37[2])=TRUE ⇒ COND_LOAD439(TRUE, i36[2], i37[2])≥NonInfC∧COND_LOAD439(TRUE, i36[2], i37[2])≥LOAD439(i36[2], *(2, i37[2]))∧(UIncreasing(LOAD439(i36[3], *(2, i37[3]))), ≥))
(3) (i37[2] + [-1] ≥ 0∧i36[2] + [-1] + [-1]i37[2] ≥ 0 ⇒ (UIncreasing(LOAD439(i36[3], *(2, i37[3]))), ≥)∧[(-1)Bound*bni_12] + [(-1)bni_12]i37[2] + [bni_12]i36[2] ≥ 0∧[(-1)bso_13] + i37[2] ≥ 0)
(4) (i37[2] + [-1] ≥ 0∧i36[2] + [-1] + [-1]i37[2] ≥ 0 ⇒ (UIncreasing(LOAD439(i36[3], *(2, i37[3]))), ≥)∧[(-1)Bound*bni_12] + [(-1)bni_12]i37[2] + [bni_12]i36[2] ≥ 0∧[(-1)bso_13] + i37[2] ≥ 0)
(5) (i37[2] + [-1] ≥ 0∧i36[2] + [-1] + [-1]i37[2] ≥ 0 ⇒ (UIncreasing(LOAD439(i36[3], *(2, i37[3]))), ≥)∧[(-1)Bound*bni_12] + [(-1)bni_12]i37[2] + [bni_12]i36[2] ≥ 0∧[(-1)bso_13] + i37[2] ≥ 0)
(6) (i37[2] ≥ 0∧i36[2] + [-2] + [-1]i37[2] ≥ 0 ⇒ (UIncreasing(LOAD439(i36[3], *(2, i37[3]))), ≥)∧[(-1)Bound*bni_12 + (-1)bni_12] + [(-1)bni_12]i37[2] + [bni_12]i36[2] ≥ 0∧[1 + (-1)bso_13] + i37[2] ≥ 0)
(7) (i37[2] ≥ 0∧i36[2] ≥ 0 ⇒ (UIncreasing(LOAD439(i36[3], *(2, i37[3]))), ≥)∧[(-1)Bound*bni_12 + bni_12] + [bni_12]i36[2] ≥ 0∧[1 + (-1)bso_13] + i37[2] ≥ 0)
(8) (i37[2]=i37[3]∧i36[2]=i36[3]∧&&(>(i37[2], 0), >(i36[2], i37[2]))=TRUE ⇒ LOAD439(i36[2], i37[2])≥NonInfC∧LOAD439(i36[2], i37[2])≥COND_LOAD439(&&(>(i37[2], 0), >(i36[2], i37[2])), i36[2], i37[2])∧(UIncreasing(COND_LOAD439(&&(>(i37[2], 0), >(i36[2], i37[2])), i36[2], i37[2])), ≥))
(9) (>(i37[2], 0)=TRUE∧>(i36[2], i37[2])=TRUE ⇒ LOAD439(i36[2], i37[2])≥NonInfC∧LOAD439(i36[2], i37[2])≥COND_LOAD439(&&(>(i37[2], 0), >(i36[2], i37[2])), i36[2], i37[2])∧(UIncreasing(COND_LOAD439(&&(>(i37[2], 0), >(i36[2], i37[2])), i36[2], i37[2])), ≥))
(10) (i37[2] + [-1] ≥ 0∧i36[2] + [-1] + [-1]i37[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD439(&&(>(i37[2], 0), >(i36[2], i37[2])), i36[2], i37[2])), ≥)∧[(-1)Bound*bni_14] + [(-1)bni_14]i37[2] + [bni_14]i36[2] ≥ 0∧[(-1)bso_15] ≥ 0)
(11) (i37[2] + [-1] ≥ 0∧i36[2] + [-1] + [-1]i37[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD439(&&(>(i37[2], 0), >(i36[2], i37[2])), i36[2], i37[2])), ≥)∧[(-1)Bound*bni_14] + [(-1)bni_14]i37[2] + [bni_14]i36[2] ≥ 0∧[(-1)bso_15] ≥ 0)
(12) (i37[2] + [-1] ≥ 0∧i36[2] + [-1] + [-1]i37[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD439(&&(>(i37[2], 0), >(i36[2], i37[2])), i36[2], i37[2])), ≥)∧[(-1)Bound*bni_14] + [(-1)bni_14]i37[2] + [bni_14]i36[2] ≥ 0∧[(-1)bso_15] ≥ 0)
(13) (i37[2] ≥ 0∧i36[2] + [-2] + [-1]i37[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD439(&&(>(i37[2], 0), >(i36[2], i37[2])), i36[2], i37[2])), ≥)∧[(-1)Bound*bni_14 + (-1)bni_14] + [(-1)bni_14]i37[2] + [bni_14]i36[2] ≥ 0∧[(-1)bso_15] ≥ 0)
(14) (i37[2] ≥ 0∧i36[2] ≥ 0 ⇒ (UIncreasing(COND_LOAD439(&&(>(i37[2], 0), >(i36[2], i37[2])), i36[2], i37[2])), ≥)∧[(-1)Bound*bni_14 + bni_14] + [bni_14]i36[2] ≥ 0∧[(-1)bso_15] ≥ 0)
POL(TRUE) = [2]
POL(FALSE) = [2]
POL(COND_LOAD439(x1, x2, x3)) = [2] + [-1]x3 + x2 + [-1]x1
POL(LOAD439(x1, x2)) = [-1]x2 + x1
POL(*(x1, x2)) = x1·x2
POL(2) = [2]
POL(&&(x1, x2)) = [2]
POL(>(x1, x2)) = [-1]
POL(0) = 0
COND_LOAD439(TRUE, i36[3], i37[3]) → LOAD439(i36[3], *(2, i37[3]))
COND_LOAD439(TRUE, i36[3], i37[3]) → LOAD439(i36[3], *(2, i37[3]))
LOAD439(i36[2], i37[2]) → COND_LOAD439(&&(>(i37[2], 0), >(i36[2], i37[2])), i36[2], i37[2])
LOAD439(i36[2], i37[2]) → COND_LOAD439(&&(>(i37[2], 0), >(i36[2], i37[2])), i36[2], i37[2])
&&(TRUE, TRUE)1 ↔ TRUE1
&&(TRUE, FALSE)1 ↔ FALSE1
&&(FALSE, TRUE)1 ↔ FALSE1
&&(FALSE, FALSE)1 ↔ FALSE1
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Boolean, Integer
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |